home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / DGBCO.z / DGBCO
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. DDDDGGGGBBBBCCCCOOOO((((3333FFFF))))                                                            DDDDGGGGBBBBCCCCOOOO((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DGBCO   - DGBCO factors a double precision band matrix by Gaussian
  10.      elimination and estimates the condition of the matrix.
  11.  
  12.      If  RCOND  is not needed, DGBFA is slightly faster.  To solve  A*X = B ,
  13.      follow DGBCO by DGBSL.  To compute  INVERSE(A)*C , follow DGBCO by DGBSL.
  14.      To compute  DETERMINANT(A) , follow DGBCO by DGBDI.
  15.  
  16.  
  17. SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
  18.       SUBROUTINE DGBCO(ABD,LDA,N,ML,MU,IPVT,RCOND,Z)
  19.  
  20. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  21.      On Entry
  22.  
  23.      AAAABBBBDDDD DOUBLE PRECISION(LDA, N)
  24.         contains the matrix in band storage.  The columns
  25.         of the matrix are stored in the columns of  ABD  and
  26.         the diagonals of the matrix are stored in rows
  27.         ML+1 through 2*ML+MU+1 of  ABD .
  28.         See the comments below for details.
  29.  
  30.      LLLLDDDDAAAA INTEGER
  31.         the leading dimension of the array  ABD .
  32.         LDA must be .GE. 2*ML + MU + 1 .
  33.  
  34.      NNNN INTEGER
  35.         the order of the original matrix.
  36.  
  37.      MMMMLLLL INTEGER
  38.         number of diagonals below the main diagonal.
  39.         0 .LE. ML .LT.  N .
  40.  
  41.      MMMMUUUU INTEGER
  42.         number of diagonals above the main diagonal.
  43.         0 .LE. MU .LT.  N .
  44.         More efficient if  ML .LE. MU .  On Return
  45.  
  46.      AAAABBBBDDDD an upper triangular matrix in band storage and
  47.         the multipliers which were used to obtain it.
  48.         The factorization can be written  A = L*U  where
  49.         L  is a product of permutation and unit lower
  50.         triangular matrices and  U  is upper triangular.
  51.  
  52.      IIIIPPPPVVVVTTTT INTEGER(N)
  53.         an integer vector of pivot indices.
  54.  
  55.      RRRRCCCCOOOONNNNDDDD DOUBLE PRECISION
  56.         an estimate of the reciprocal condition of  A .
  57.         For the system  A*X = B , relative perturbations
  58.         in  A  and  B  of size  EPSILON  may cause
  59.         relative perturbations in  X  of size  EPSILON/RCOND .
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDGGGGBBBBCCCCOOOO((((3333FFFF))))                                                            DDDDGGGGBBBBCCCCOOOO((((3333FFFF))))
  71.  
  72.  
  73.  
  74.         If  RCOND  is so small that the logical expression
  75.         1.0 + RCOND .EQ. 1.0
  76.         is true, then  A  may be singular to working
  77.         precision.  In particular,  RCOND  is zero  if
  78.         exact singularity is detected or the estimate
  79.         underflows.
  80.  
  81.      ZZZZ DOUBLE PRECISION(N)
  82.         a work vector whose contents are usually unimportant.
  83.         If  A  is close to a singular matrix, then  Z  is
  84.         an approximate null vector in the sense that
  85.         NORM(A*Z) = RCOND*NORM(A)*NORM(Z) .  Band Storage
  86.         If  A  is a band matrix, the following program segment
  87.         will set up the input.
  88.         ML = (band width below the diagonal)
  89.         MU = (band width above the diagonal)
  90.         M = ML + MU + 1
  91.         DO 20 J = 1, N
  92.         I1 = MAX0(1, J-MU)
  93.         I2 = MIN0(N, J+ML)
  94.         DO 10 I = I1, I2
  95.         K = I - J + M
  96.         ABD(K,J) = A(I,J)
  97.         10    CONTINUE
  98.         20 CONTINUE
  99.         This uses rows  ML+1  through  2*ML+MU+1  of  ABD .
  100.         In addition, the first  ML  rows in  ABD  are used for
  101.         elements generated during the triangularization.
  102.         The total number of rows needed in  ABD  is  2*ML+MU+1 .
  103.         The  ML+MU by ML+MU  upper left triangle and the
  104.         ML by ML  lower right triangle are not referenced.  Example:  If the
  105.      original matrix is
  106.         11 12 13  0  0  0
  107.         21 22 23 24  0  0
  108.         0 32 33 34 35  0
  109.         0  0 43 44 45 46
  110.         0  0  0 54 55 56
  111.         0  0  0  0 65 66 then  N = 6, ML = 1, MU = 2, LDA .GE. 5  and ABD
  112.      should contain
  113.         *  *  *  +  +  +  , * = not used
  114.         *  * 13 24 35 46  , + = used for pivoting
  115.         * 12 23 34 45 56
  116.         11 22 33 44 55 66
  117.         21 32 43 54 65  * LINPACK.  This version dated 08/14/78 .  Cleve
  118.      Moler, University of New Mexico, Argonne National Lab.  Subroutines and
  119.      functions used:  LINPACK DGBFA BLAS DAXPY,DDOT,DSCAL,DASUM Fortran
  120.      DABS,DMAX1,MAX0,MIN0,DSIGN
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.